'use strict';
module.exports = {
		/**
		 * XXXnameXXX
		 * @url admin/pages/files_mzgl/dy_tv_series/kh/oc_uploadvideo 前端调用的url参数地址
		 * data 请求参数
		 * @param {String} params1  参数1
		 */
		main: async (event) => {
			let {
				data = {}, userInfo, util, filterResponse, originalParam
			} = event;
			let {
				customUtil,
				uniID,
				config,
				pubFun,
				vk,
				db,
				_
			} = util;
			let {
				uid,
				lists
			} = data;
			let res = {
				code: 0,
				msg: ""
			};
			// 业务逻辑开始-----------------------------------------------------------
			console.log("lists====", lists);

			// 
			let Tv = await vk.baseDao.select({
				dbName: "dy_tv", // 表名
				getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
				getMain: true, // 是否只返回rows数据，默认false
				pageIndex: 1, // 当前第几页
				pageSize: -1, // 每页条数
				whereJson: { // 条件
					_id: lists[0].tv_id // 金额大于0
				},
				// 按_id降序 asc 升序 desc 降序 
				sortArr: [{
					name: "_id",
					type: "desc"
				}],
			});

			console.log("Tv===", Tv);


			let TvArr = await vk.baseDao.select({
				dbName: "dy_tv_series", // 表名
				getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
				getMain: true, // 是否只返回rows数据，默认false
				pageIndex: 1, // 当前第几页
				pageSize: -1, // 每页条数
				whereJson: { // 条件
					tv_id: lists[0].tv_id // 金额大于0
				},
				// 按_id降序 asc 升序 desc 降序 
				sortArr: [{
					name: "_id",
					type: "desc"
				}],
			});

			console.log("TvArr===", TvArr);

			let Tvdata = []
			for (let i = 0; i < lists.length; i += 1) {
				console.log(lists[i]);
				// console.log("e====",e);
				let TvSeries = await vk.baseDao.select({
					dbName: "dy_tv_series", // 表名
					getCount: true, // 是否需要同时查询满足条件的记录总数量，默认false
					pageIndex: 1, // 当前第几页
					pageSize: -1, // 每页条数
					whereJson: { // 条件
						title: lists[i].title
					},
					// 代表只显示_id和money字段
					fieldJson: {
						_id: false,
						title: true,
						seq: true,
						cover_list: true,
						open_video_id: true,
					},
					// 按_id降序 asc 升序 desc 降序 
					sortArr: [{
						name: "_id",
						type: "desc"
					}],
				});

				console.log("TvSeries===", TvSeries);
				Tvdata.push(TvSeries.rows)
			}
			console.log("Tvdata=====", Tvdata);

			let A = await vk.baseDao.selects({
				dbName: "a_appid",
				// 主表where条件
				whereJson: {
					appid: lists[0].ma_app_id
				},
			});

			console.log("A========", A);


			let appsecret = A.rows[0].appsecret

			console.log("lists[0].ma_app_id", lists[0].ma_app_id);

			// 获取accessonToken
			let urlA = "https://open.douyin.com/oauth/client_token/"
			const accessToken = await uniCloud.httpclient.request(urlA, {
				method: 'POST',
				headers: {
					"Content-Type": "application/json",
				},
				data: {
					client_key: lists[0].ma_app_id, // id
					client_secret: appsecret, // 密钥
					grant_type: "client_credential",
				},
				dataType: 'json', // 指定返回值为json格式，自动进行parseK
			})

			//创建短剧
			// 有效时间为 2 个小时
			let access_token = accessToken.data.data.access_token


			// 循环发送上传视频的请求

			for (const e of TVdata) {
				console.log("e===", e);

				if (e.open_video_id == "") {
					try {
						let title = e.title.replace(/\s+/g, '');
						// 上传短剧至内容库
						let urlT = "https://open.douyin.com/api/playlet/v2/resource/upload/"
						const responseText = await uniCloud.httpclient.request(urlT, {
							method: 'POST',
							headers: {
								"Content-Type": "application/json",
								"access-token": access_token,
							},
							data: {
								resource_type: 1,
								ma_app_id: lists[0].ma_app_id,
								video_meta: {
									url: e.url,
									title: title,
									format: e.format,
									use_dy_cloud: e.use_dy_cloud,
									dy_cloud_id: e.dy_cloud_id
								},
							},
							dataType: 'json', // 指定返回值为json格式，自动进行parseK
						})
						console.log("responseText", responseText);
						if (responseText.data.err_msg == "dy_cloud_id参数不合法，当前视频已上传") {
							// 调用查询视频的接口
							console.log("11111111111111111111111", e.dy_cloud_id, lists[0].ma_app_id);
							let urlB = "https://open.douyin.com/api/playlet/v2/video/query/"
							const AAAA = await uniCloud.httpclient.request(urlB, {
								method: 'POST',
								headers: {
									"Content-Type": "application/json",
									"access-token": access_token,
								},
								data: {
									ma_app_id: lists[0].ma_app_id,
									video_id_type: 2,
									dy_cloud_id: e.dy_cloud_id
								},
								dataType: 'json', // 指定返回值为json格式，自动进行parseK
							})
							console.log("AAAA======", AAAA.data.data.open_video_id);

							// 填充当前openid
							let bbb = await vk.baseDao.update({
								dbName: "dy_tv_series", // 表名
								whereJson: { // 条件
									dy_cloud_id: e.dy_cloud_id,

								},
								dataJson: { // 需要修改的数据
									open_video_id: AAAA.data.data.open_video_id,
									status: true
								}
							});


						}

						let open_video_id = responseText.data.data.video_result.open_video_id
						console.log("open_video_id====", open_video_id);
						// 执行 数据库 updateById 命令
						res.newdata = await vk.baseDao.updateById({
							dbName: "dy_tv_series",
							id: _id,
							dataJson: {
								open_video_id: open_video_id,
								status: true
							},
							getUpdateData: true,
						});

						let num = await vk.baseDao.update({
							dbName: "dy_tv_series", // 表名
							whereJson: { // 条件
								dy_cloud_id: e.dy_cloud_id,

							},
							dataJson: { // 需要修改的数据
								open_video_id: open_video_id,
								status: true
							}
						});
					} catch (err) {

					}
				} else {
					console.log("222");
					let num = await vk.baseDao.update({
						dbName: "dy_tv_series", // 表名
						whereJson: { // 条件
							dy_cloud_id: e.dy_cloud_id,

						},
						dataJson: { // 需要修改的数据
							status: true
						}
					});
				}



				// 业务逻辑结束-----------------------------------------------------------
				return res;
			}
		}